package com.shawn.test;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectResult;
import org.junit.Test;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * 头模板
 *
 * @author lenovo
 * @date 2022/10/24
 */
public class HeadTemplate {
    @Test
    public void OssTest() throws FileNotFoundException {
                // Endpoint以华东1（杭州）为例，其它Region请按实际情况填写。
                String endpoint = "https://oss-cn-nanjing.aliyuncs.com";
                // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
                String accessKeyId = "LTAI5tEMVS46qQXeKXG6effv";
                String accessKeySecret = "8oZg1w94PCDXtnP5D4U8wrG8Cud37j";
                // 填写Bucket名称，例如examplebucket。
                String bucketName = "touch-love";
                // 填写Object完整路径，完整路径中不能包含Bucket名称，例如exampledir/exampleobject.txt。
                String path = "C:\\Users\\lenovo\\Desktop\\就业班资料\\04-项目一瑞吉点餐(陈辉-20220618193227)\\项目课程\\资料\\图片资源\\0a3b3288-3446-4420-bbff-f263d0c02d8e.jpg";
                 FileInputStream inputStream = new FileInputStream(new File(path));
        String objectName = new SimpleDateFormat("yyyy/MM/dd").format(new Date())+"/"+ UUID.randomUUID()+path.substring(path.lastIndexOf("."));

                // 创建OSSClient实例。
                OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

                try {
                    // 填写Byte数组。
                    byte[] content = "Hello OSS".getBytes();
                    // 创建PutObject请求。
                    PutObjectResult putObjectResult = ossClient.putObject(bucketName, objectName, inputStream);
                    String url = "https://touch-love.oss-cn-nanjing.aliyuncs.com/" + objectName;
                    System.err.println(url);
                } catch (OSSException oe) {
                    System.out.println("Caught an OSSException, which means your request made it to OSS, "
                            + "but was rejected with an error response for some reason.");
                    System.out.println("Error Message:" + oe.getErrorMessage());
                    System.out.println("Error Code:" + oe.getErrorCode());
                    System.out.println("Request ID:" + oe.getRequestId());
                    System.out.println("Host ID:" + oe.getHostId());
                } catch (ClientException ce) {
                    System.out.println("Caught an ClientException, which means the client encountered "
                            + "a serious internal problem while trying to communicate with OSS, "
                            + "such as not being able to access the network.");
                    System.out.println("Error Message:" + ce.getMessage());
                } finally {
                    if (ossClient != null) {
                        ossClient.shutdown();
                    }
                }
            }


}

